#ifndef TREE_H_
#define TREE_H_

#include <list>

template<typename T> class Tree
    {
    public:
        virtual ~Tree()
            {
            }
        virtual void insert(const T &data) = 0;

        virtual void remove(const T &data) = 0;

        virtual std::list<T> toList() = 0;
    };

#endif
